package com.raimcomputing.pickforme.domain.dao;

import com.raimcomputing.pickforme.common.exception.NoSuchUserException;
import com.raimcomputing.pickforme.common.vo.UserVo;

/**
 * Provides data tier implementations for the UserVo object.
 * 
 */
public interface UserDao {

	/**
	 * Loads a user by a unique email.
	 * 
	 * @param email
	 *            The email to load.
	 * @return A user object.
	 * @throws NoSuchUserException
	 *             Thrown if the search by email returns anything other than 1.
	 */
	UserVo loadUserByEmail( String email ) throws NoSuchUserException;

	/**
	 * Saves a new User.
	 * 
	 * @param object
	 *            The object to save.
	 */
	void save( UserVo user );

}
